@echo off
setlocal enabledelayedexpansion

REM 数据库切换脚本 (Windows版本)
REM 用法: switch-db.bat [mysql|postgres|docker-mysql|docker-postgres]

set DB_TYPE=%1
if "%DB_TYPE%"=="" set DB_TYPE=mysql

echo 🔄 切换到 %DB_TYPE% 数据库...

if "%DB_TYPE%"=="mysql" goto :mysql
if "%DB_TYPE%"=="postgres" goto :postgres
if "%DB_TYPE%"=="postgresql" goto :postgres
if "%DB_TYPE%"=="docker-mysql" goto :docker_mysql
if "%DB_TYPE%"=="docker-postgres" goto :docker_postgres
goto :unsupported

:mysql
echo 📝 配置MySQL环境...

REM 检查MySQL是否安装
mysql --version >nul 2>&1
if errorlevel 1 (
    echo ❌ MySQL未安装，请先安装MySQL
    exit /b 1
)

echo 🗄️ 创建MySQL数据库...
echo CREATE DATABASE IF NOT EXISTS blog_resume CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | mysql -u root -p

echo 📊 执行MySQL初始化脚本...
mysql -u root -p blog_resume < init.sql

set SPRING_PROFILES_ACTIVE=dev
echo ✅ MySQL配置完成！使用 mvnw spring-boot:run 启动应用
goto :next_steps

:postgres
echo 📝 配置PostgreSQL环境...

REM 检查PostgreSQL是否安装
psql --version >nul 2>&1
if errorlevel 1 (
    echo ❌ PostgreSQL未安装，请先安装PostgreSQL
    exit /b 1
)

echo 🗄️ 创建PostgreSQL数据库...
createdb blog_resume 2>nul || echo 数据库已存在，跳过创建

echo 📊 执行PostgreSQL初始化脚本...
psql -d blog_resume -f init_postgres.sql

set SPRING_PROFILES_ACTIVE=postgres
echo ✅ PostgreSQL配置完成！使用 mvnw spring-boot:run -Dspring.profiles.active=postgres 启动应用
goto :next_steps

:docker_mysql
echo 🐳 启动MySQL Docker容器...
cd ..
docker-compose up -d mysql redis
echo ✅ MySQL Docker容器启动完成！
goto :next_steps

:docker_postgres
echo 🐳 启动PostgreSQL Docker容器...
docker-compose -f docker-compose-postgres.yml up -d
echo ✅ PostgreSQL Docker容器启动完成！
goto :next_steps

:unsupported
echo ❌ 不支持的数据库类型: %DB_TYPE%
echo 支持的类型: mysql, postgres, docker-mysql, docker-postgres
exit /b 1

:next_steps
echo.
echo 🎯 下一步:
echo 1. 检查数据库连接
echo 2. 启动后端服务
echo 3. 启动前端服务
echo.
echo 📚 更多信息请查看 启动脚本.md

endlocal
